package org.javabasic;

import java.util.Objects;

/**
 * @Auther: qingle
 * @Date: 2024/8/23-19:01
 * @Description:
 * @version: 1.0
 */
public class MyClass_44_Person {
	private final String name;
	private final int age;

	public MyClass_44_Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	/**
	 * 重写equals方法，用于比较两个Person对象是否相等
	 * 本方法主要比较两个对象的年龄和姓名是否相同，如果相同，则认为两个对象相等
	 *
	 * @param obj 被比较的对象，类型为Object
	 * @return 如果两个对象的年龄和姓名都相同，返回true；否则，返回false
	 */
	@Override
	public boolean equals(Object obj) {
	    // 如果是同一个对象，直接返回true
	    if (this == obj) return true;
	    // 如果传入的对象是null或者不是同一个类的实例，返回false
	    if (obj == null || getClass() != obj.getClass()) return false;
	    // 将对象转换为MyClass_43_Person类型，以便进行比较
	    MyClass_44_Person person = (MyClass_44_Person) obj;
	    // 比较年龄和姓名是否相同，如果相同，返回true
	    return age == person.age && name.equals(person.name);
	}
//
//	@Override
//	public int hashCode() {
//		int result = 17;
//		result = 31 * result + name.hashCode();
//		result = 31 * result + age;
//		return result;
//	}

	@Override
	public int hashCode() {
		return Objects.hash(age, name);
	}

}
